RSA加密算法详解及Python实现

您所在的位置:网站首页 python RSA算法gui界面 RSA加密算法详解及Python实现

RSA加密算法详解及Python实现

2023-07-27 01:27| 来源: 网络整理| 查看: 265

RSA 加密算法 一、前言

RSA 加密算法是一种非对称加密算法。在公开密钥加密和电子商业中 RSA 被广泛使用。RSA 是 1977 年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA 就是他们三人姓氏开头字母拼在一起组成的。

二、准备工作

1、找出两个质数 𝑝 和 𝑞

2、𝑛=𝑝×𝑞

3、𝜙(𝑛)=(𝑝−1)(𝑞−1)

4、公钥 𝑒 :在 1 0): break # d*e% d = x # 扩展的欧几里得算法中得到的x就是e的逆元 return (n, e), (n, d) # 加密 def encryption(x, pubkey): n = pubkey[0] e = pubkey[1] y = x ** e % n # 加密 return y # 解密 def decryption(y, prikey): n = prikey[0] d = prikey[1] x = y ** d % n # 解密 return x if __name__ == '__main__': p = int(input("请给定第一个质数p的值:")) q = int(input("请给定第二个质数q的值:")) x = int(input("请给定要加密的消息x的值:")) # 生成公钥私钥 pubkey, prikey = get_key(p, q) print("加密前的消息是:", x) y = encryption(x, pubkey) print("加密后的消息是:", y) after_x = decryption(y, prikey) print("解密后的消息是:", after_x) 有一个小问题(大问题)如果加密的信息,或者算法选择到的(e) 的值过大时,可能会出现精度问题,导致结果错误= = 但至少按照算法的思路写出来的这个程序是能够按照算法的意思,解出答案来的 主要问题就是当指数太大数,精度发生了丢失(应该) 有时间再重新写一下这个程序8

运行截图



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3